package com.carefree.system.modules.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.carefree.common.core.PageUtils;
import com.carefree.common.core.Result;
import com.carefree.system.modules.admin.entity.UserEntity;
import com.carefree.system.modules.admin.vo.AssginRoleVo;
import com.carefree.system.modules.admin.vo.LoginVo;

import java.util.Map;

/**
 * 用户
 *
 * @author tengbin
 */
public interface UserService extends IService<UserEntity> {

    /**
     * 分页查询-使用自定义vo对象返回结果并显示
     *
     * @param params 分页参数及查询参数
     * @return
     */
    PageUtils queryPageForVo(Map<String, Object> params);

    /**
     * 启用或禁用
     *
     * @param id     用户id
     * @param status 状态0/1
     * @return
     */
    boolean activeOrInActiveById(Long id, Integer status);

    /**
     * 保存用户信息
     *
     * @param user
     * @return
     */
    boolean saveUser(UserEntity user);

    /**
     * 修改用户信息
     *
     * @param user
     * @return
     */
    boolean updateUser(UserEntity user);

    /**
     * 根据查询到的用户信息获取相关用户信息
     *
     * @param user
     * @return
     */
    Map<String, Object> getUserInfo();

    /**
     * 用户登录
     *
     * @param loginVo
     * @return
     */
    Result<Object> accountLogin(LoginVo loginVo);

    /**
     * 退出登录
     *
     * @return
     */
    Result<Object> logout();

    /**
     * 给用户分配角色
     *
     * @param assginRoleVo
     * @return
     */
    boolean assignRolesByUserId(AssginRoleVo assginRoleVo);

}

